<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        #text-container {
            width: 200px;
            /* 设置容器宽度 */
            white-space: nowrap;
            /* 确保文本不会换行 */
            overflow: hidden;
            /* 超出部分隐藏 */
            text-overflow: ellipsis;
            /* 超出部分显示省略号 */
            border: 1px solid #000;
            /* 为了清楚展示效果，添加边框 */
        }

        #read-more-button {
            display: none;
            /* 默认隐藏展开按钮 */
        }
    </style>


</head>

<body>
    <div id="text-container">
        这里是很长的文本内容，如果超出了容器的宽度，那么超出的部分会被省略，并显示为省略号，点击会展开全文。
    </div>
    <button id="read-more-button">展开</button>

    <script>
        document.getElementById('text-container').addEventListener('click', function () {
            var container = this;
            var button = document.getElementById('read-more-button');
            if (container.offsetWidth + button.offsetWidth < container.scrollWidth) {
                button.style.display = 'inline'; // 如果文本实际宽度超出容器宽度，显示展开按钮
            }
        });

    document.getElementById('read-more-button').addEventListener('click', function () {
            var container = document.getElementById('text-container');
            container.style.whiteSpace = 'pre-wrap'; // 更改文本的white-space属性，使其换行
            container.style.overflow = 'visible'; // 移除文本的省略号表示全文可见
            this.style.display = 'none'; // 隐藏展开按钮
        });
    </script>
</body>

</html>